// 创建路由
const router = require("express").Router();
// 导入数据模型
const petModel = require('../../models/petModel')
const Jwt = require('../../common/jwt')

// 发布宠物
// URL：/api/pet/add
// 完整地址：http://locahost:3000/api/pet/add
// 请求方式：post
// 参数：age, localstation, myname,myphone,petcategory,petimg,petinsectnum,petname,petsterilizationnum,petstory,petvaccinumnum,petwhich,sex,timehs,timeymd,user_id
router.post('/add',async (req,res)=> {
    let {age, localstation, myname,myphone,petcategory,petimg,petinsectnum,petname,petsterilizationnum,petstory,petvaccinumnum,petwhich,sex,timehs,timeymd} = req.body;
    // 获取token信息（临时身份，令牌）
    let token = req.headers.token || req.body.token;
    let result = new Jwt(token).verifyToken()
    // 判断管理员是否登录
    if(result.code === 200){
        let user_id = result.info.data;
        // 判断参数是否有值
        if(age &&  localstation &&  myname && myphone && petcategory && petimg && petinsectnum && petname && petsterilizationnum && petstory && petvaccinumnum && petwhich && sex && timehs && timeymd) {
            // 登录有效
           await petModel.add(age, localstation, myname,myphone,petcategory,petimg,petinsectnum,petname,petsterilizationnum,petstory,petvaccinumnum,petwhich,sex,timehs,timeymd,user_id)
            .then(
                content=>{
                    res.send(content)
                },
                error=>{
                    res.send(error)
                }
            )
        }
        else {
            res.send({
                code: -1,
                msg: "缺少参数"
            })
        }
    }
    else {
        // 登录失效
        res.send({
            code: -1,
            msg: "登录状态失效,请重新登录"
        })
    }

})


// 删除宠物
// URL: /api/pet/remove
// 完整地址：http://localhost:3000/api/pet/remove
// 请求方式：post
// 参数：id  token
router.post('/remove',async (req,res)=> {
      let {id} = req.body;
      // 获取token信息（临时身份，令牌）
      let token = req.headers.token || req.body.token;
      let result = new Jwt(token).verifyToken()
      if(result.code === 200){
            // 登录状态下
            if(id == undefined) {
                res.send({
                    code: -1,
                    msg: "缺少参数。"
                })
            }
            else {
            await  petModel.remove(id)
            .then(
                content=>{
                    res.send(content)
                },
                err=>{
                    res.send(err)
                },
            )
            }
      }
      else {
        // 登录失效
        res.send({
            code: -1,
            msg: "登录状态失效,请重新登录"
        })
    }

    
})



// 宠物列表
// URL: /api/pet/list
// 完整地址：http://localhost:3000/api/pet/list
// 请求方式：get
// 参数：page, pageSize
router.get('/list',async (req,res)=> {
    let {page, pageSize} = req.query;
    if(page == undefined  || pageSize == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数。"
        })
    }
    else {
      await  petModel.list(page, pageSize)
      .then(
        content=>{
            res.send(content)
        },
        err=>{
            res.send(err)
        },
      )
    }
})


// 获取详情
// URL: /api/pet/detail
// 完整地址：http://localhost:3000/api/pet/detail
// 请求方式：get
// 参数：id
router.get('/detail',async (req,res)=> {
    let {id} = req.query;
    if(id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数。"
        })
    }
    else {
      await  petModel.detail(id)
      .then(
        content=>{
            res.send(content)
        },
        err=>{
            res.send(err)
        },
      )
    }
})


// 分类宠物列表
// URL: /api/pet/list
// 完整地址：http://localhost:3000/api/pet/list_classify
// 请求方式：get
// 参数：page, pageSize,petcategory
router.get('/list_classify',async (req,res)=> {
    let {page, pageSize,petcategory} = req.query;
    if(page == undefined  || pageSize == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数。"
        })
    }
    else {
      await  petModel.list_classify(page, pageSize,petcategory)
      .then(
        content=>{
            res.send(content)
        },
        err=>{
            res.send(err)
        },
      )
    }
})


// 通过关键字 搜索宠物接口
// URL: /api/pet/search
// 参数：keyword
router.get('/search', async (req, res) => {
    let { keyword } = req.query;
    if(keyword){
        await petModel.search(keyword)
        .then(
            (content)=>{
                // 响应数据
                res.send(content);
            },
            (error)=>{
                res.send(error);
            }
        )
    }
    else {
        res.send({
            code: -1,
            msg: '缺少参数。'
        });
    }
})

// 暴露
module.exports = router;